package com.design.patterns.factory;

/**
 * 工厂类
 * @author wujiwen
 * @date 2017-07-22
 */
public class SendFactory {
    /**
     * 普通工厂类工具传来的类型进行实例化
     * @param sendType
     * @return
     */
    public Sender produce(String sendType) {
        if("mail".equals(sendType)){
            return new MailSender();
        }else if("sms".equals(sendType)){
            return new SmsSender();
        }else{
            System.out.println("请输入正确的类型！");
            return null;
        }
    }
    //多个工厂方法  避免普通工厂方法传参错误后无法实例化
    public Sender produceMail() {
        return new MailSender();
    }
    
    public Sender produceSms() {
        return new SmsSender();
    }
    
    //静态工厂方法,根据多个方法工厂进行改造，变成静态方法，直接调用即可
    public static Sender staProduceMail(){
        return new MailSender();
    }
    public static Sender staProduceSms(){
        return new SmsSender();
    }
}
